/******************************************************************************
** ZLibCompressor.h
** 23/6/10
******************************************************************************/

#ifndef __ZLIBCOMPRESSOR_H__
#define __ZLIBCOMPRESSOR_H__

#include "IZLibCompressor.h"

class CZLibCompressor : public IZLibCompressor
{
	protected:
		VIRTUAL													~CZLibCompressor();

	public:
		VIRTUAL IZLibDeflateStream			*CreateDeflateStream(int inLevel, EZLibMethod inMethod, int inWindowBits, int inMemLevel, EZLibStrategy inStrategy, EZLibFlush inFlushMethod);
		VIRTUAL void										Release();

		VIRTUAL void										MD5Init( SMD5Context *pIOCtx );
		VIRTUAL void										MD5Update( SMD5Context *pIOCtx, const char *pInBuff, unsigned int len );
		VIRTUAL void										MD5Final( SMD5Context *pIOCtx, char outDigest[16] );
};

#endif // __ZLIBCOMPRESSOR_H__
